


interface A {
    void test();

    default void test2() {

    }
    private void test4() {
        
    }
}



/*
当这个类被final修饰了，被修饰的类就变成完全封闭状态了，所有类都没办法继承。
JDK17提供了一个新的关键字：sealed，用它代替final，并在声明末尾用permits可以将该类密封但是可以开放给某些类型
 */
sealed class Person permits GB{

}
//继承的类也要加上密封限制，non-sealed 表示不限制，若写为sealed，那么它必须有子类继承
non-sealed class GB extends Person {

}

public class Test {

    public static void main(String[] args) {
        var name="hello";
        var age=10;//var关键字可以自动推导出变量是什么类型
    }



    public static void main3(String[] args) {
        String data = "one" ;
        int result = switch (data) {
            case "one":yield 1;
            case "two":yield 2;
            default:yield -1;
        };
        System.out.println(result) ;
    }

    public static void main2(String[] args) {
        String data = "one" ;
        int result = switch (data) {
            case "one"->1;
            case "two"->2;
            default->-1;
        };
        System.out.println(result) ;
    }

    public static void main1(String[] args) {
        String data = "one" ;
        int result = 0 ; // 接收数据的返回值
        switch (data) {
            case "one":
                result = 1 ; // 为result重新赋值
                break ;
            case "two":
                result = 2 ; // 为result重新赋值
                break ;
            default:
                result = -1 ; // 为result重新赋值
                break ;
        }
        System.out.println(result) ;
    }
}
